﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TA.Turbo.Controls
{
	/// <summary>
	/// Provides functionality of a list control that allows selecting multiple items.
	/// </summary>
	public interface IMultiValueListControl : IListControl
	{
		/// <summary>
		/// Gets the values for all of the selected items for this list control. 
		/// </summary>
		/// <remarks>
		/// Doesn't require Items to be populated.
		/// </remarks>
		List<string> Values { get; }
		/// <summary>
		/// Gets all of the selected items for this list control. 
		/// </summary>
		/// <remarks>
		/// Only available when items are initialized (ie., initial data binding or subsequent post back with Items property posted).
		/// </remarks>
		List<ListItem> SelectedItems { get; }
		/// <summary>
		/// Gets the indices of all of the selected items for this list control. 
		/// </summary>
		/// <remarks>
		/// Only available when items are initialized (ie., initial data binding or subsequent post back with Items property posted).
		/// </remarks>
		List<int> SelectedIndices { get; }
	}
}
